正则表达式从左到右进行计算,并遵循优先级顺序,这与算数表达式非常类似。
相同优先级的从左到右进行运算,不同优先级的运算先高后低。下表从最高到最低说明了各种正则表达式运算符的优先级顺序:
运算符 | 描述 | |||
---|---|---|---|---|
\ | 转义符 | |||
(),(?:),(?=),[] | 圆括号和方括号 | |||
*,+,?,{n},{n,},{n,m} | 限定符 | |||
^,$,\任何元字符、任何字符 | 定位点和序列(即:位置和顺序) | |||
\ | 替换,“或”操作,字符具有高于替换运算符的优先级,使得“m | food”匹配“m”或“food”。若要匹配“mood”或“food”,使用括号创建子表达式,从而产生“(m | f)ood” |